<?php
/**
 * 框架核心函数库
 */

/**
 * 加载配置文件 支持格式转换 仅支持一级配置
 * @param string $file 配置文件名
 * @return array
 */
function load_config($file)
{
    $ext = pathinfo($file, PATHINFO_EXTENSION);
    switch ($ext) {
        case 'php':
            return include $file;
        case 'ini':
            return parse_ini_file($file);
        case 'yaml':
            return yaml_parse_file($file);
        case 'xml':
            return (array)simplexml_load_file($file);
        case 'json':
            return json_decode(file_get_contents($file), true);
    }
}

/**
 * 实例化表对象 存在表model
 * @param string $table
 * @return \Wang\Database\Model
 */
function MT($table = '')
{
    $oper = parseUrlToArr(0);
    if ($table) {
        $path = '\\App\\'.$oper.'\\Model\\'.ucfirst(strtolower($table));
        $model = new $path;
    } else {
        $model = new \Wang\Database\Model();
    }

    return $model;
}

/**
 * 简单解析url
 * $type int 0,1,2 分别代表模块名、控制器名、操作名
 */
function parseUrlToArr($type = null){
    if(!isset($_GET['o'])){
        //默认情况 Home模块下的Index->index
        $_GET['o'] = "Home/Index/Index";
    }
    //去除所有空白字符
    $filter_arr = array(" ", "/t", "/n", "/r");
    $oper = explode('/',trim(str_replace($filter_arr,'',$_GET['o']),'/'));

    //如果不存在模块
    if(count($oper) < 3){
        array_unshift($oper,'Home');
    }

    $oper = is_null($type)?$oper:$oper[$type];

    return $oper;
}
